import path from 'path'

export default {
  // 指定打包目标为node环境
  target: 'node',

  // 指定打包入口文件
  entry: './server/index.ts',

  // 输出配置
  output: {
    path: path.resolve('./release'),
    filename: 'server.bundle.js',
  },

  // 解析配置
  resolve: {
    // 自动解析这些扩展名
    extensions: ['.ts', '.js'],
    // 配置路径别名
    alias: {
      '@server': path.resolve('server'),
      '@': path.resolve('src'),
    },
  },

  // 模块配置
  module: {
    rules: [
      {
        test: /\.ts$/,
        use: {
          loader: 'ts-loader',
          options: {
            configFile: 'tsconfig.node.json',
          },
        },
        exclude: /node_modules/,
      },
      {
        test: /\.js$/,
        use: 'babel-loader',
      },
    ],
  },

  // 指定打包模式
  mode: 'production',

  // 配置node版本
  node: {
    __dirname: false,
    __filename: false,
  },
}
